#ifndef NODE_H
#define NODE_H

#include <string>
#include <vector>

typedef std::pair<unsigned int, std::string> Token;

enum NodeType {
NONE,
AND_LIST,
EXPRESSION_LIST,
OR_LIST,
STATEMENT_LIST
};

class Node {
	public:
		Node(const std::vector<Token>&);
		~Node();
	protected:
		NodeType nodeType_;
		std::vector<Token> tokens_;
		std::vector<Node*> nodes_;
		
		std::vector<Token>::const_iterator findLastToken(const std::string&);
		std::vector<Token>::const_iterator findNextToken(const std::string&, std::vector<Token>::const_iterator);
};

#endif

